package com.dianzhihan.http2;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;

@Controller
public class MyController {
    @RequestMapping("/collect")
    @ResponseBody
    public String collect(@RequestBody String body) {  //必须带有请求体，没有的话返回400错误
        System.out.println(body);
        return "OK";
    }

    @PostMapping("/only-post")
    @ResponseBody
    public String onlyPost() {
        return "OK";
    }

    @GetMapping("/need-param")
    @ResponseBody
    public String needParam(@RequestParam("age") int age) {
        return "OK";
    }

    @GetMapping("/exception")
    @ResponseBody
    public String exception() {
//        throw new RuntimeException("异常了");
//        String s = null;
//        System.out.println(s.length()); // 隐含着空指针异常
//        return "OK";
        ArrayList<String> list = new ArrayList<>();

        return list.get(10);    // 遗憾这下标越界异常
    }

    @GetMapping("/redirect-demo")
    public String redirectDemo() {
        // 这里是死规定
        // redirect: + 资源URL组成

//        return "redirect:/";        // 第二次请求会是 404，因为咱现在没有 首页(/) 资源   站内重定向
        return "redirect:/method-form.html";    // 绝对路径 + 站内重定向 + 200

//        return "redirect:method-form.html";         // 相对路径，相对于 /redirect-demo，所在的目录是 /
                                                    // method-form.html -> /method-form.html
                                                    // 站内重定向 + 200

//        return "redirect:https://www.baidu.com/";   // 重定向到 百度，https 协议
    }

    @PostMapping("/login.do")
    public String login() {
//        return "redirect:https://www.qq.com/";  //登录成功，重定向到 QQ 首页
        return "redirect:/method-form.html";
    }

    @GetMapping("/forward-demo")
    public String forwardDemo() {
        return "forward:/method-form.html";
    }
}
